/**
Commander库的操作方法主要围绕着创建命令行工具的基本流程。以下是Commander库的一些常用操作方法的总结说明：
  1. 安装Commander
  首先，确保你已经安装了Commander库。可以通过npm进行安装：
  ```bash
  npm install commander
  ```

  2. 创建基本的命令行应用
  使用Commander库创建一个命令行应用的基本示例：
  ```javascript
  const { Command } = require('commander');
  const program = new Command();

  program
    .version('1.0.0') // 设置版本
    .destription('一个简单的命令行工具示例')
    .option('-n, --name <type>', '指定名称'); // 添加选项

  program.parse(process.argv); // 解析命令行参数

  const options = program.opts(); // 获取选项
  if (options.name) {
    console.log(`你好, ${options.name}!`);
  }
  ```

  3. 定义命令
  可以定义多个命令，并为每个命令添加选项和描述：
  ```javascript
  program
    .command('greet <name>') // 定义命令和参数
    .destription('问候某人')
    .option('-t, --time <type>', '指定问候时间')
    .action((name, options) => {
      const time = options.time || '现在';
      console.log(`你好, ${name}! 现在是${time}.`);
    });
  ```

  4. 支持嵌套命令
  Commander允许定义嵌套命令：
  ```javascript
  const subCommand = program.command('sub'); // 定义子命令
  subCommand
    .command('hello <name>')
    .action((name) => {
      console.log(`Hello, ${name}!`);
    });
  ```

  5. 自动生成帮助信息
  Commander会自动生成帮助信息，用户可以通过`--help`查看：
  ```javascript
  program.help(); // 显示帮助信息
  ```

  6. 处理参数
  可以处理各种类型的参数，包括布尔值和数组：
  ```javascript
  program
    .option('-v, --verbose', '输出详细信息') // 布尔选项
    .option('-f, --files <items>', '指定文件', (value, previous) => previous.concat([value]), []);
  ```

  7. 版本管理
  可以通过`version`方法设置应用程序的版本：
  ```javascript
  program.version('2.0.0');
  ```

  8. 解析命令行参数
  使用`program.parse(process.argv)`解析命令行参数：
  ```javascript
  program.parse(process.argv);
  ```

  9. 获取选项
  使用`program.opts()`获取用户输入的选项：
  ```javascript
  const options = program.opts();
  ```

  10. 处理错误
  可以通过`try...catch`块来处理命令执行中的错误：
  ```javascript
  try {
    program.parse(process.argv);
  } catch (error) {
    console.error('发生错误:', error.message);
  }
  ```

  总结
  Commander库提供了一种简单而强大的方式来构建命令行工具。通过定义命令、选项和参数，开发者可以创建出功能丰富且用户友好的CLI应用程序。希望以上总结对你理解和使用Commander库有所帮助！如果有其他问题，欢迎继续询问。
 */
const { program } = require("commander");

function helpOptions() {
  // 1. 处理 --version 的操作
  const version = require("../../package.json").version;
  program.version(version, "-v, --version", "查看版本号"); // -v 或 --version 后面可以跟参数

  // 2. 增强其他的options的操作
  program.option("-w --name", "自定义名字");
  program.option(
    "-d --dest <dest>",
    "a destination folder, 例如: -d src/components"
  );

  program.on("--help", () => {
    console.log("");
    console.log("Other Options:");
    console.log("  -w --name <name>  自定义名字");
    console.log(
      "  -d --dest <dest>  a destination folder, 例如: -d src/components"
    );
  });
}

module.exports = helpOptions;
